package com.shrimpcolo.share;

public class test5 {
	public static void main(String[] args) {
		//N为总人数，从第S个人开始，报M的人出圈
		final int N = 13, S = 3, M = 5;
		//i为第S人的下标
		int i = S - 1, j, k = N, g = 1;
		//定义一个人数为N的数组a
		int[] a = new int[N];
		for (int h = 1; h <= N; h++) {
			//将编号为h的人放入下标为h-1的数组元素中
          //a[0]=1,a[1]=2
			a[h - 1] = h;
		}
		System.out.println("出圈的顺序为；");
		do {
			//计算出圈人 的下标2+4=6,7+4=11,12+4=16
			i = i + (M - 1);
			//当数组下标大于等于圈中的人数k时
          //10+4=14>=12
			while (i >= k) {
				//讲数组的下标i减去圈中的人数k
				i = i - k;
			}
			System.out.println("\t" + a[i]);
			for (j = i; j < k - 1; j++) {
				//a[i]出圈后将后续的人前移
				a[j] = a[j + 1];
			}
			//圈中的人数k减1
			k--;
			//共有N个人循环N次
			g++;
		} while (g <= N);
	}
}

